package com.capitalone.dashboard.model; import org.springframework.validation.BindException; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * */ public class ErrorResponse { private Map<String, List<String>> globalErrors = new HashMap<String, List<String>>(); private Map<String, List<String>> fieldErrors = new HashMap<String, List<String>>(); public Map<String, List<String>> getGlobalErrors() { return globalErrors; } public Map<String, List<String>> getFieldErrors() { return fieldErrors; } public void addFieldError(String field, String error) { List<String> errors = getFieldErrors().get(field); if (errors == null) { errors = new ArrayList<String>(); getFieldErrors().put(field, errors); } errors.add(error); } public static ErrorResponse fromBindException(BindException bindException) { ErrorResponse errorResponse = new ErrorResponse(); for (ObjectError objectError : bindException.getGlobalErrors()) { List<String> errors = errorResponse.getGlobalErrors().get(objectError.getObjectName()); if (errors == null) { errors = new ArrayList<String>(); errorResponse.getGlobalErrors().put(objectError.getObjectName(), errors); } errors.add(objectError.getDefaultMessage()); } for (FieldError fieldError : bindException.getFieldErrors()) { List<String> errors = errorResponse.getFieldErrors().get(fieldError.getField()); if (errors == null) { errors = new ArrayList<String>(); errorResponse.getFieldErrors().put(fieldError.getField(), errors); } errors.add(fieldError.getDefaultMessage()); } return errorResponse; } }